Data and information are rapidly becoming the life blood of enterprises. Transactions with customers, operational data, financial data, corporate intelligence data; in fact, all types of information are now captured, indexed, stored, and mined by enterprises in today's highly competitive and world economy.
Since information is vital to the enterprise, it is often made available twenty-four hours a day, seven days a week, and three hundred sixty-five days a year. To this, the enterprises have to implement a variety of data replication, data backup, and data versioning techniques against their data models or their data warehouses.
For example, an enterprise may periodically capture the state of its data for a particular volume as a snapshot. If something should happen to the volume, it can be completely restored to the saved snapshot state. Another technique mirrors a volume on multiple volumes, such that if one volume is down or not accessible, another volume is automatically made available unbeknownst to the users. This is often referred to as data replication or failover support.
In still more cases, an enterprise may desire to permit different versions of files in the data warehouse to be captured, archived, and restored on demand by a user. This may be useful for a variety of reasons. For example, a user may download a file and work with it offline and could then lose the file due to a hardware failure. In another case, a user may make changes to a file and then determine that a previous version was more acceptable or more desirable. In either case, if the files are versioned, the user can retrieve a desired version of a file from an archive or versioning volume.
Versioning or archive services typically store an entire file, even if only a single byte of information is changed between versions of the file. This is obviously not very space efficient and is also not very processor efficient, since the processor has to access, store, index, and retrieve the entire file for each version of the file being retained in the archive volume.
Snapshot services work on the block level of data granularity for a particular volume and do not typically permit changes to a saved snapshot. Versioning services typically work on the file level of data granularity and do permit changes. Snapshots are typically replaced every so often with newer snapshots. Versioned files may never be written over or replaced and can be potentially maintained indefinitely on separate storage associated with the archive volume. In some cases, U.S. government regulations now mandate that certain enterprises have adequate data backup and versioning systems in place. However, backup and versioning services can be expensive to maintain and to manage.